package fr.afcepf.atod16.groupe1.projet1.dto.catalogue;

import fr.afcepf.atod16.groupe1.projet1.dto.Dto;
import java.util.Date;
import java.util.List;

/**
 * Le DTO fiche produit
 * @author cedric
 */
public class DtoFicheProduit implements Dto {

    private Integer id;
    private Date dateCreation;
    private String nom;
    private String descriptif;
    private String resume;
    private Boolean valide = false;
    private List<DtoSousCategorieProduit> sousCategories;
    private DtoProduit produit;

    public DtoFicheProduit() {
    }

    public DtoFicheProduit(Integer id, Date dateCreation, String nom, String descriptif, String resume, List<DtoSousCategorieProduit> sousCategories, DtoProduit produit) {
        this.id = id;
        this.dateCreation = dateCreation;
        this.nom = nom;
        this.descriptif = descriptif;
        this.resume = resume;
        this.sousCategories = sousCategories;
        this.produit = produit;
    }

    @Override
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Date getDateCreation() {
        return dateCreation;
    }

    public void setDateCreation(Date dateCreation) {
        this.dateCreation = dateCreation;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public String getDescriptif() {
        return descriptif;
    }

    public void setDescriptif(String descriptif) {
        this.descriptif = descriptif;
    }

    public String getResume() {
        return resume;
    }

    public void setResume(String resume) {
        this.resume = resume;
    }

    public Boolean getValide() {
        return valide;
    }

    public void setValide(Boolean valide) {
        this.valide = valide;
    }

    public List<DtoSousCategorieProduit> getSousCategories() {
        return sousCategories;
    }

    public void setSousCategories(List<DtoSousCategorieProduit> sousCategories) {
        this.sousCategories = sousCategories;
    }

    public DtoProduit getProduit() {
        return produit;
    }

    public void setProduit(DtoProduit produit) {
        this.produit = produit;
    }

    @Override
    public String toString() {
        return "DtoFicheProduit{" + "id=" + id + ", dateCreation=" + dateCreation + ", nom=" + nom + ", descriptif=" + descriptif + ", resume=" + resume + ", valide=" + valide + ", produit=" + produit + '}';
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.id != null ? this.id.hashCode() : 0);
        hash = 97 * hash + (this.dateCreation != null ? this.dateCreation.hashCode() : 0);
        hash = 97 * hash + (this.nom != null ? this.nom.hashCode() : 0);
        hash = 97 * hash + (this.descriptif != null ? this.descriptif.hashCode() : 0);
        hash = 97 * hash + (this.resume != null ? this.resume.hashCode() : 0);
        hash = 97 * hash + (this.valide != null ? this.valide.hashCode() : 0);
        hash = 97 * hash + (this.produit != null ? this.produit.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final DtoFicheProduit other = (DtoFicheProduit) obj;
        if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) {
            return false;
        }
        if (this.dateCreation != other.dateCreation && (this.dateCreation == null || !this.dateCreation.equals(other.dateCreation))) {
            return false;
        }
        if ((this.nom == null) ? (other.nom != null) : !this.nom.equals(other.nom)) {
            return false;
        }
        if ((this.descriptif == null) ? (other.descriptif != null) : !this.descriptif.equals(other.descriptif)) {
            return false;
        }
        if ((this.resume == null) ? (other.resume != null) : !this.resume.equals(other.resume)) {
            return false;
        }
        if (this.valide != other.valide && (this.valide == null || !this.valide.equals(other.valide))) {
            return false;
        }
        if (this.produit != other.produit && (this.produit == null || !this.produit.equals(other.produit))) {
            return false;
        }
        return true;
    }
}
